package com.hxzy.shiro;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.stereotype.Component;

/**
 * 自定义权限认证的类，专业给前端thyeleaf来调用 [[ ${@permission.hasPermi('system:role:edit')}]]
 *
 * @author admin
 * @date 2021-09-07
 */
@Component(value = "permission")
public class PermissionService {

    /**
     * 验证用户是否具备某权限，无权限返回hidden用于前端隐藏（如需返回Boolean使用isPermitted）
     *
     * @param permission 权限字符串
     * @return 用户是否具备某权限
     */
    public String hasPermi(String permission)
    {
        //取得当前的用户
        Subject subject = SecurityUtils.getSubject();
        //判断是否有菜单权限,如果为true代表有分配权限，如果为false没有权限
        boolean permitted = subject.isPermitted(permission);
        return permitted ? "" : "hidden";
    }


}
